package com.zlc.workflow.core.process.model;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.List;

/**
 * 流程节点审批配置
 */
@Getter
@Setter
@Accessors(chain = true)
public class NodeApproveConfig {

    /**
     * 节点审批配置ID
     */
    @ApiModelProperty(value="节点审批配置ID")
    private String configId;

    /**
     * 审批类型 单人ONLY|多人MORE
     */
    @ApiModelProperty(value="审批类型 单人ONLY|多人MORE")
    private String approveType;

    /**
     * 单人审批方式 FIRST_ONE|SELECT|AUTO
     */
    @ApiModelProperty(value="单人审批方式 FIRST_ONE|SELECT|AUTO")
    private String onlyApprove;

    /**
     * 多人审批方式 ALL|SELECT
     */
    @ApiModelProperty(value="多人审批方式 ALL|SELECT")
    private String moreApprove;

    /**
     * 处理人不存在时 ERROR|CONTINUE
     */
    @ApiModelProperty(value="处理人不存在时 ERROR|CONTINUE")
    private String noUserApprove;

    /**
     * 处理人和上一步骤相同时 HAND|CONTINUE
     */
    @ApiModelProperty(value="处理人和上一步骤相同时 HAND|CONTINUE")
    private String sameLastApprove;

    /**
     * 是否按条件设置审批人
     */
    @ApiModelProperty(value="是否按条件设置审批人")
    private Boolean conditionFlag;

    /**
     * 条件
     */
    @ApiModelProperty(value="条件")
    private String condition;

    /**
     * 序号
     */
    @ApiModelProperty(value="序号")
    private Integer order;

    @ApiModelProperty(value="审批人配置")
    private List<NodeApproveUserConfig> userConfigList = new ArrayList<>();

    @ApiModelProperty(value="条件满足时审批人配置")
    private List<NodeApproveUserConfig> conditionTrueUserConfigList = new ArrayList<>();

    @ApiModelProperty(value="条件不满足时审批人配置")
    private List<NodeApproveUserConfig> conditionFalseUserConfigList = new ArrayList<>();
}
